/**
 * Map 管理类
 */
export default class MapManageBase<T> {
    // map 管理组
    mapList: Map<string, T>;
    // 初始化对象数据
    initMapType: T;
    constructor(initMapType: T) {
        this.mapList = new Map()
        this.initMapType = initMapType
    }
    /**
     * 检查数据
     * @param key
     * @returns 
     */
    hasData(key: string): boolean {
        return this.mapList.has(key)
    }
    /**
     * 删除数据
     * @param key
     * @param data
     */
    deleteData(key: string): void {
        if (!this.hasData(key)) return console.info(`没有找到 ${key} 对应的数据`)
        this.mapList.delete(key)
    }
    /**
     * 清空所有数据
     */
    clearData(): void {
        this.mapList.clear()
    }
    /**
     * 获取数据
     * @param key
     * @returns
     */
    getData(key: string): T {
        let data = this.mapList.get(key)
        if (!data) return this.initMapType
        return data
    }
    /**
     * 设置数据
     * @param key
     * @param value
     */
    setData(key: string, value: T): void {
        this.mapList.set(key, value)
    }
}